home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 10 / FM Towns Free Software Collection 10.iso / ms_dos / tool / happy03 / change.doc < prev    next >
Text File  |  1994-11-16  |  8KB  |  187 lines

  1. ==============================================================================
  2.  
  3.         HAPPy(H.Asano Pascal Processing system)
  4.  
  5.              バージョンアップ変更点一覧
  6.  
  7.             Copyright (c) H.Asano 1993,1994.
  8.  
  9. ==============================================================================
  10.  
  11. 1.はじめに
  12.    HAPPyの、初リリース(1992年12月18日 Version 0.0)以降の、
  13.   バージョンアップによる変更点一覧を簡単に示すドキュメントです。
  14.  
  15.  
  16.  
  17. 2.Version 0.0 → 0.1
  18.  
  19.   (1) バグ修正
  20.     ・ixa,chk 命令の  アセンブルバグ修正
  21.         ・lca     命令の  アセンブルバグ修正
  22.       ・実数指定に関するアセンブルバグ修正
  23.         具体的には、次のようなプログラムがVersion 0.0では正しく動きません。
  24.           program bug00(output) ;
  25.             var  aa:array[0..1] of integer ;
  26.                  bb:array[1..2] of integer ;
  27.                  cc:packed array[1..2] of char ;
  28.           begin
  29.             aa[0] := 0 ;  aa[1] := 1 ;
  30.             bb[1] := 2 ;  bb[2] := 3 ;
  31.             cc    := ' ' ;                    { 全角空白                   }
  32.             writeln(aa[0],aa[1],bb[1],bb[2]) ; { 配列の処理が異常           }
  33.             writeln(ord(cc[1])) ;              { 順序数がが負になる         }
  34.             writeln(3.4E-38,3.4E38) ;          { 大きな実数指定時の動作不良 }
  35.           end.
  36.         Version 0.0で上記プログラムを動かすと、次のような誤った結果になります。
  37.                    0           1           2           0
  38.                 -127
  39.          3.400000E-038 1.#INF00E+000
  40.  
  41.   (2)  機能追加
  42.       ・ファイル出力時の障害チェック追加
  43.  
  44.   (3)  性能改善
  45.       ・インタプリタのメモリ搭載量を8192から10000ワードに増量
  46.     ・動作速度をごくわずか高速化
  47.  
  48.   (4) ドキュメント変更
  49.     ・各種誤字修正
  50.         ・「Pascal入門」 全面差し替え
  51.         ・「HAPPy Pascal文法書」 加筆
  52.     ・「バージョンアップ変更点一覧」追加
  53.  
  54.  
  55.  
  56. 2.Version 0.1 → 0.2
  57.  
  58.   (1) バグ修正
  59.          ・piコマンドで-iオプション指定時に出力される「interpreter」綴り修正
  60.          ・wrs,wrb命令の解釈実行バグ修正(write手続きの文字列,論理値の桁数指定
  61.            動作不良  Version 0.0->0.1の際に混入したもの)
  62.          ・文字列定数中に " を記述した時の動作不良修正
  63.          ・文字列の比較に関する解釈実行バグ修正(ナオシタラ比較速度がオソクナッテシマッタ)
  64.          ・数の表記に関する文法エラーチェック修正(PASCAL原書第4版に従う)
  65.          ・符号演算子に関する文法エラーチェック修正
  66.          ・実数定数を指定した時P-codeソースにゴミが出力される障害修正
  67.          ・inputファイルを変数引数に指定した手続き内で、プログラム起動後初めて
  68.            input^にアクセスした時、reset(input)をし忘れていたのを修正
  69.  
  70.         具体的には、次のようなプログラムがVersion 0.1では正しく動きません。
  71.           program bug01(input,output) ;
  72.             var s : packed array[1..5] of char ;
  73.             procedure p(var F:text) ;
  74.             begin
  75.               writeln(F^);{ ここでinput^をアクセスするのでコンソール入力状態 }
  76.             end ;         { となる必要があるが、素通りしてしまう }
  77.           begin
  78.             p(input) ;
  79.             s := 'HAPPy' ;
  80.             writeln(s='HAPPy') ;    { 正しく TRUE と出力される        }
  81.             s[5] := chr(100000+ord('y')-100000) ; { s[5]には'y'が入る }
  82.             writeln(s,s='HAPPy');   { TRUEとなるはずが FALSEとなる    }
  83.             writeln('HAPPy':1) ;    { H 1文字だけ出力されるのが正しい }
  84.             writeln(true   :1) ;    { T 1文字だけ出力されるのが正しい }
  85.             writeln('s="HAPPy";') ; { 変なものを出力してしまう        }
  86.           end.
  87.  
  88.   (2)  機能追加
  89.       ・配列の添字が定数の時、コンパイル時に添字型の範囲チェックをする。
  90.            (コンパイルエラーメッセージ E148 追加)
  91.  
  92.   (3)  性能改善
  93.      ・csp命令の廃止に伴うP-codeの全面変更
  94.          ・case文のコード改良 (最小値が0の時無駄なコードを生成しない)
  95.          ・new標準手続き,dispose標準関数のコード改良
  96.          ・文字列出力のコード改良
  97.          ・配列の添字が定数の時のコード改良
  98.          ・負の符号から始まる整数定数に関するコード改良(ngi命令を生成しない)
  99.  
  100.   (4) ドキュメント変更
  101.          ・「HAPPy Pascal文法書」削除
  102.          ・各文書加筆修正
  103.  
  104.   (5) その他の変更
  105.          ・サンプルプログラム(CALENDER.PAS)微修正
  106.          ・バッチファイル例  (HAPPY.BAT)   微修正
  107.  
  108.  
  109.  
  110. 2.Version 0.2 → 0.3
  111.   (1) バグ修正
  112.          ・case文の構文解析をISO規格に準拠(旧標準Pascalのままだった)
  113.          ・in演算子の左辺が0~31でない時の動作不良修正
  114.          ・with文を重ねた時の動作不良
  115.          ・array[a,b] of ~ という配列型においてa[3]:=a[4] というような代入文
  116.            で代入可能でないというコンパイルエラーが起きる場合があるのを修正
  117.          ・page標準手続きで引数を省略した時のエラーメッセージ不良修正
  118.          ・succ/pred標準関数の引数にreal型を指定時、エラーにならない不良修正
  119.          ・テキストファイル以外のファイルの入出力動作不良修正(ほとんどの場合
  120.            まともに動いていなかった・・・・ハズカシイ)
  121.  
  122.         具体的には、次のようなプログラムがVersion 0.2以前では正しく動きません。
  123.           (**** Version 0.2以前に存在するバグ(一部)の確認プログラム ****)
  124.           program bug02(output,f);
  125.              type rcd = record
  126.                           r1 : integer;
  127.                           r2 : record
  128.                                  r21 : integer
  129.                                end
  130.                         end ;
  131.              var r : array[1..2] of rcd ;
  132.                  f : file of rcd ;
  133.           begin
  134.             writeln(-1 in [0..31]) ;        { FALSE なのにTRUE と出力される}
  135.             with r[2],r2 do
  136.               begin  r21 := 21 ;
  137.                      r1  := 1
  138.               end ;
  139.             writeln(r[2].r2.r21) ;          { 21 なのに 1 と出力される     }
  140.             rewrite(f) ;
  141.             write(f,r[2]) ;
  142.             reset(f) ;
  143.             read(f,r[1]) ;
  144.             write(r[1].r2.r21)              { r[2].r2.21 と同じ値にならない}
  145.           end.
  146.  
  147.   (2)  機能追加
  148.          ・pcコマンドが使用する環境変数"TMP"に指定するディレクトリの最後が"\"
  149.            であってもなくてもよくした。
  150.          ・pcコマンドで、Pascalソースファイル名の拡張子を省略した時は".pas"を
  151.            補うようにした。
  152.          ・pcコマンドが生成するP-codeオブジェクトファイル名を、Pascalソースフ
  153.           ァイル名の拡張子を".pco"とした。
  154.        ・pcコマンドのアセンブルリストファイル出力時の障害チェック追加(エラ
  155.       ーメッセーA008追加)
  156.          ・piコマンドで、P-codeオブジェクトファイルの指定ができるようにした。
  157.          ・piコマンドで、使用ファイル名をパラメータに指定できるようにした。
  158.          ・代入文において、左辺が部分範囲型、右辺が単一の定数の場合、コンパイ
  159.            ル時に代入可能性チェックをする。
  160.          ・succ/pred 標準関数において、-dオプション指定時、関数値の存在チェッ
  161.            クを追加(エラーメッセージR038,R039追加)
  162.  
  163.   (3)  性能改善
  164.      ・for文のコード改良
  165.          ・ent命令の改良
  166.          ・集合の要素記述の a..b という形式で、a,b とも定数の時のコード改良
  167.      ・代入演算子に '=' を使っていた場合のコンパイルエラーメッセージ改良
  168.          ・式+定数 あるいは 式-定数 において、定数が32767以下の時のコード改良
  169.          ・input,outputファイルへの入出力関連コードの改良
  170.          ・文字型に対してのchk命令生成をやめる。
  171.          ・アセンブルリスト出力の高速化
  172.  
  173.   (4) ドキュメント変更
  174.          ・スタートレックゲームの解説書(STARTREK.DOC)を追加
  175.          ・各文書加筆修正
  176.  
  177.   (5) その他の変更
  178.          ・再配付条件の変更(PI.EXE単独再配付を認める)
  179.          ・アセンブルリストの空白部をタブに変更
  180.          ・アセンブルソースの最大ラベル数を1800から500に削減
  181.          ・アセンブルエラーメッセージの簡潔化
  182.          ・サンプルプログラムに、スタートレックゲーム(STARTREK.PAS)を追加
  183.          ・サンプルプログラム(カレンダー)ファイル名変更 -> CALENDAR.PAS
  184.          ・バッチファイル例  (HAPPY.BAT) 微修正
  185.  
  186.         ------ 以上(CHANGE.DOC  終わり) ------
  187.